t EventEmitter = require('events').EventEmitter;

class Dog extends EventEmitter {
  constructor(name, energy) {
        super();
            this.#name   = name;
                this.#energy = energy;
                    this.#startTimer();
                      
  }

    get name() { return this.#name;  }
      get energy() { return this.#energy;  }
      setEnergy(e) {
            this.#energy = e;
                this.#startTimer();
                  
      }

        #name   = '';
        #energy = 0;
        #timer  = null;

#startTimer() {
      if(this.#timer !== null) return;

      this.#timer = setInterval(()=> {
        if(this.#energy > 0) {
                  this.emit('bark');
                          this.#energy--;
                                
        } else {
                  clearInterval(this.#timer);
                          this.#timer = null;
                                
        }
            
      }, 1000);
        
}

}

module.exports = Dog;

